With many computer programming systems, libraries of routines may be distributed and used by many different programmers. The libraries may contain many operations that may be reused in many different settings. For example, a set of libraries may generate user interface components, perform file-related operations, or perform network communications. Programmers may use the libraries to create many different types of applications.
The libraries, sometimes known as assemblies, may evolve and change over time and different variations of the libraries may be formed for different hardware platforms or for different applications.